﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Triunfadores.BusinessEntities;
using Triunfadores.Repository;

namespace Triunfadores.Test
{
    [TestClass]
    public class CuotaPagoTest
    {
        [TestMethod]
        public void ObtenerTodosLasCuotasDePagoTest()
        {
            CuotaPagoRepository target = new CuotaPagoRepository();
            IEnumerable<CuotaPago> actual;
            actual = target.ObtenerTodasLasCuotaPagos();
            Assert.IsTrue(actual.Count() >= 1);
        }

        [TestMethod]
        public void ObtenerCuotasDePagoPorIdPrestamoTest()
        {
            CuotaPagoRepository target = new CuotaPagoRepository();
            var id = 2;
            IEnumerable<CuotaPago> actual;
            actual = target.GetAllCuotasPagoByIdPrestamo(id);
            Assert.IsTrue(actual.Count() >= 1);
            //Assert.IsNotNull(actual);
        }

        [TestMethod]
        public void AddCuotaPagoTest()
        {
            CuotaPagoRepository cuotaPagoRepositoryRepository = new CuotaPagoRepository();
            var ListEsperado = (IEnumerable<CuotaPago>)cuotaPagoRepositoryRepository.ObtenerTodasLasCuotaPagos();
            CuotaPago cuotaPago = new CuotaPago()
            {
                Estado = "Pendiente",
                Interes = decimal.Parse("0.2"),
                FechaPago = DateTime.Parse("12/12/2012"),
                Monto = decimal.Parse("20"),
                Mora = decimal.Parse("0"),
                Total = decimal.Parse("40"),
                IdPrestamo = 4
            };
            cuotaPagoRepositoryRepository.AddCuotaPago(cuotaPago);
            var ListaCTUAL = (IEnumerable<CuotaPago>)cuotaPagoRepositoryRepository.ObtenerTodasLasCuotaPagos();
            Assert.AreEqual(ListEsperado.Count() + 1, ListaCTUAL.Count(), "Error ");
        }

        //TODO: Hacer El metodo obtener cuotapago por ID
        //[TestMethod]
        //public void UpdateCuotaPagoTest()
        //{
        //    CuotaPagoRepository target = new CuotaPagoRepository();
        //    var ID = 16;
        //    var TOTAL = decimal.Parse("100");
        //    CuotaPago cuotaPago = new CuotaPago()
        //    {
        //        Id = ID,
        //        Total = TOTAL

        //    };
        //    target.UpdateCuotaPago(cuotaPago);
        //    var existe = target.ObtenerCuotaPagoPorId(ID);
        //    Assert.IsTrue(existe.Total == TOTAL);
        //}

    }
}
